#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by git-commit with the name of the file that has the
# commit message, followed by the description of the commit
# message's source.  The hook's purpose is to edit the commit
# message file.  If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, make this file executable.

# This hook includes three examples.  The first comments out the
# "Conflicts:" part of a merge commit.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output.  It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited.  This is rarely a good idea.
rootdir=$(git rev-parse --show-toplevel)

case "$2" in
  merge)
    sed -i '/^Conflicts:/,/#/!b;s/^/# &/;s/^# #/#/' "$1" ;;

  ""|template)
#    perl -i -pe '
#      print "\n" . `git diff --cached --name-status -r`
#	  if /^#/ && $first++ == 0' "$1"
      tmpfile=$(mktemp)
      cat $rootdir/.commit-template >> $tmpfile
      $rootdir/scripts/check_commit.sh $1 | sed -e "s/^/# /" >> $tmpfile
      cat $1 >> $tmpfile
      mv -f $tmpfile $1
      #show diff:
      git diff --cached | sed -e "s/^/# /" >> $1
      ;;
  *)
    ;;
esac

# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
